﻿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ElementumForever.Factory;
using ElementumForever.Editer;
using ElementumForever.CommandPattern;
using LuaInterface;

namespace ElementumForever.Interfaces
{
    public interface IsceneBuilder
    {
        void InitializeScene(BaseScene scene, LuaTable sceneDefine);
        void InitializeEntity(BaseEntity entity, LuaTable childrenTable);
        void BuildChildren(BaseEntity parent, LuaTable childrenTable);

        string AddProduct(BaseEntity entity);
        bool RemoveProduct(string id);

        BaseEntity GetProductByID(string id);
        string GetIDByProduct(BaseEntity entity);

        string GenerateId(BaseEntity entity);
        void ChangeId(string oldId, string newId);
        bool ContainId(string id);

        void AttachChildById(String childId, BaseEntity parent);
        void DetachChildById(String childId, BaseEntity parent);

        CommandManager CManager { get; }
    }
}
